Creating life-like computer images, such as for video games, continues to be a challenge accepted by game designers and manufacturers of graphics processing systems. A graphics pipeline is typically used to create 2D images for video displays of 3D scenes. A graphics pipeline includes a sequence of steps or processes that turn a 3D model into a 2D raster representation for a display. Rendering is the process of extracting data from world space and rendering it into a screen space. World space is three-dimensional space that is often generated from a 3D model provided by a program run on a CPU. A graphics processing unit (GPU) receives instructions from the CPU program, generates the three-dimensional world space based thereon and renders a two-dimensional view for a display (i.e., screen space) from the world space. For example, the CPU program can be a video game that sends instructions to the GPU for rendering a two-dimensional view onto a display. A GPU uses a graphics pipeline for the rendering process that includes multiple processes such as shading and reflection/scattering that are used to describe the appearance of a surface in a scene.
Shading addresses the variation of material properties across the surfaces of a scene. Reflection and transmission deal with the relationship between light, incoming and outgoing, at a given point on a surface. Descriptions of the light relationship can be given in terms of a bidirectional scattering distribution function (BSDF). A description of BSDF can be found at http://en.wikipedia.org/wiki/Bidirectional_scattering_distribution_function. In short BSDF is a function having two parameters, an input and an output direction, that provides an output which is the reflected (transmitted) light based on the input parameters.
A measured BSDF stores measured scattering parameters as a 3D texture using the 3D coordinates of u, v and w for storing Φo (phi), θi (theta in) and θo (theta out), respectively. Measurements are by definition discrete. FIG. 1 illustrates the parameters of the measured BSDF function. The measured BSDF, having input parameters (Φo, θi, θo) with θi in n1 steps in (0,πn/2), θo in n2 steps in (0,π/2) and Φo in n3 steps in (0,π), maps incoming irradiance from θi to outgoing irradiance θo with Φo being the angle between the projections of those two rays onto the tangential plane. FIG. 1 illustrates the incoming (incident) light ray 110, the outgoing (scattered) light ray 120, the projections 112, 122, respectively, of the incoming and outgoing rays on the tangential plane, a sample point of a surface 130 of the tangential plane and the angle 140 between the projections of those rays 112, 122.